import os
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

# AI模型配置
AI_CONFIG = {
    'model': os.getenv('MODEL_NAME', 'deepseek-chat'),
    'api_base': os.getenv('API_BASE_URL', 'https://api.deepseek.com/v1'),
    'api_key': os.getenv('DEEPSEEK_API_KEY'),
    'temperature': float(os.getenv('TEMPERATURE', '1')),
    'max_tokens': int(os.getenv('MAX_TOKENS', '4096')),
}

# OLLAMA模型配置
OLLAMA_CONFIG = {
    'model': os.getenv('OLLAMA_MODEL_NAME', 'deepseek-coder:latest'),
    'temperature': float(os.getenv('OLLAMA_TEMPERATURE', '0.7')),
    'host': os.getenv('OLLAMA_HOST', 'http://localhost:11434'),
}

# 设置OLLAMA_HOST环境变量
os.environ['OLLAMA_HOST'] = OLLAMA_CONFIG['host']

# 提示模板
PROMPT_TEMPLATE = """你是一个PostgreSQL数据库专家，负责将自然语言转换为SQL查询语句。

数据库结构如下：
{table_description}

请将以下问题转换为SQL查询语句：

问题：{question}

请遵循以下规则生成SQL语句：
1. 对于PostgreSQL保留关键字相关的表名或字段，必须使用双引号包裹。例如：
   - system_user 表应该写为 "system_user"
   - system_group 表应该写为 "system_group"
   - system_order 表应该写为 "system_order"
   - system_tenant 表应该写为 "system_tenant"
   - system_user_role 表应该写为 "system_user_role"
   - system_permission 表应该写为 "system_permission"
   - system_role 表应该写为 "system_role"
   - system_role_permission 表应该写为 "system_role_permission"
   - system_user_permission 表应该写为 "system_user_permission"
2. 使用 is_deleted = 0 而不是 status = 1 来表示未删除的记录
3. 请确保SQL语句的语法正确，包括：
   - 正确的表名和字段名引用
   - 正确的JOIN语法
   - 正确的WHERE条件
   - 正确的GROUP BY和ORDER BY子句

请直接返回SQL查询语句，不要包含任何思考过程、解释或代码标记。""" 